
package edu.uoc.tdp.pac3.persistence.dao;

import java.io.Serializable;
import java.util.List;

/**
 * Classe d'acces a la base de dades (Data Access Object).
 * Amb aquesta classe abstracta podem definir basicament els metodes accessors a la base de dades.
 * Com observem, aquesta classe treballa amb Generics, es a dir, l'implementacio tindra que ser generica per a un tipus
 * de objecte. Veure les implementacions.
 * @author Gerard
 */
public interface IBaseDao<S extends Serializable> {
    
    public List<S> findAll();
    
    public S findById(Integer id);
     
    public boolean insert(S entity);
    
    public boolean update(S entity);
    
    public boolean delete(S entity);

    public Integer count();
    
    public Integer deleteAll();

    public String getTableName();

    public String getDELETE_STRING();

    public String getINSERT_STRING();

    public String getUPDADE_STRING();
    
}
